package com.cskaoyan._02objectandclass._02use;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/3 10:05
 **/
/*
张三养了3只狗，一只1岁白色萨摩亚，一只2岁黄白柯基，一只3岁黄色金毛

注意事项
1. 类可以嵌套定义称之为内部类， 但是请现在不要嵌套定义类，一个Java文件中定义多个class应该并列而不是包含。
2. 一个Java文件中的多个class是同包（文件夹）关系。
3. 一个类当中，应该开门见山的定义成员变量，而后再写成员方法。
4. 类中没有的属性和行为，对象是不可能有的，类是模板，模板中有才能体现在对象中。
5. 使用new关键字就会创建新的对象，两条new语句创建的对象是完全独立的。
6. 成员变量，在类的全局生效，不像局部变量仅在作用域内生效！
    成员变量，在整个类体中生效，在整个类中的成员方法中都可以访问它！
 */
public class Demo2 {
    public static void main(String[] args) {
        // 使用对象描述这个场景
        // .var 或者 alt +enter
        Dog dog1 = new Dog();
        dog1.age = 1;
        dog1.name = "萨摩耶";
        dog1.color = "白色";
        System.out.println("第一只狗的信息:----名字:" + dog1.name +
                "---颜色:" + dog1.color + "---年龄:" + dog1.age);
        dog1.eat("肉");

        Dog dog2 = new Dog();
        dog2.age = 2;
        dog2.name = "柯基";
        dog2.color = "黄白色";
        System.out.println("第二只狗的信息:----名字:" + dog2.name +
                "---颜色:" + dog2.color + "---年龄:" + dog2.age);
        dog2.eat("罐头");


        Dog dog3 = new Dog();
        dog3.age = 3;
        dog3.name = "金毛";
        dog3.color = "黄色";
        System.out.println("第三只狗的信息:----名字:" + dog3.name +
                "---颜色:" + dog3.color + "---年龄:" + dog3.age);
        dog3.eat("骨头");

        // 假设访问类中不存在的属性
        // dog1.size 没有size属性
        dog1.sleepHour = 8;
        dog1.sleep();
    }
}
// 定义Dog类
class Dog{
    // 成员变量
    String name;
    int age;
    String color;
    int sleepHour;

    // 成员方法
    public void eat(String food) {
        System.out.println(name + "喜欢吃"+food);
        System.out.println(sleepHour);

    }

    public void sleep() {
        System.out.println("睡了"+sleepHour+"小时");
    }


}

class A{
    //class B{
    //
    //}
}

class B{}